<?php

function index() {
    global $contenido;

    $dbc = conectarBD();
    $resultado = pg_query($dbc, "SELECT * FROM cliente ORDER BY apellido;");
    if (!$resultado) {

        $contenido["error"] = "No se ha podido contactar a la base de datos.";
    } else {
        $clientes = pg_fetch_all($resultado);
        if (!$clientes)
            $contenido["info"] = "No hay clientes en la base de datos.";
        else
            $contenido["clientes"] = $clientes;
    }
    pg_close($dbc);
}

function view() {
    global $contenido;

    $nro_documento = @$_GET["nro_documento"];
    if (!$nro_documento) {
        $contenido["error"] = "Debe especificar el número de documento del cliente.";
    } else {
        $dbc = conectarBD();
        pg_prepare($dbc, "delete_query", "SELECT * FROM cliente WHERE nro_documento = $1;");
        $resultado = pg_execute($dbc, "delete_query", array($nro_documento));
        $resultadoArray = pg_fetch_all($resultado);
        pg_close($dbc);
        if (!$resultado || !$resultadoArray) {
            $contenido["error"] = "No se ha encontrado un cliente con el número de documento indicado.";
        } else {
            $contenido["cliente"] = $resultadoArray[0];
        }
    }
}

function create() {
    Response::$view = "form";
}

function edit() {
    global $contenido;
    view();
    Response::$view = "form";
}

function persist() {
    global $contenido;
    $_GET["nro_documento"] = $_POST["nro_documento"];
    view();

    $dbc = conectarBD();

    if (!array_key_exists("cliente", $contenido)) {

        $consulta = "INSERT INTO cliente VALUES(" . $_POST["nro_documento"] . "," . $_POST["nombre"] . "," . $_POST["apellido"] . "," . $_POST["fecha_nacimiento"] . "," . $_POST["sexo"] . "," . $_POST["email"] . "," . $_POST["telefono"] . "," . $_POST["nacionalidad"] . ");";
        pg_prepare($dbc, "persist_query", "INSERT INTO cliente VALUES($1,$2,$3,$4,$5,$6,$7,$8)");
    } else {
        $consulta = "UPDATE cliente SET nombre=" . $_POST["nombre"] . ",apellido=" . $_POST["apellido"] . ",fecha_nacimiento=" . $_POST["fecha_nacimiento"] . ",sexo=" . $_POST["sexo"] . ",email=" . $_POST["email"] . ",telefono=" . $_POST["telefono"] . ",nacionalidad=" . $_POST["nacionalidad"] . " WHERE nro_documento=" . $_POST["nro_documento"] . ";";
        pg_prepare($dbc, "persist_query", "UPDATE cliente SET nombre=$2,apellido=$3,fecha_nacimiento=$4,sexo=$5,email=$6,telefono=$7,nacionalidad=$8 WHERE nro_documento=$1");
    }
    $resultado = pg_execute($dbc, "persist_query", $_POST);
    pg_close($dbc);
    if (!$resultado || $resultado == 0) {
        $contenido["error"] = "No se ha podido guardar el cliente.";
    } else {
        $contenido = array();
        $contenido["exito"] = "Los datos del cliente se han guardado exitosamente.";
        //guardar en log
        $log = guardarEnLog($consulta);
    }

    index();
    Response::$view = "index";
}

function delete() {
    global $contenido;

    $nro_documento = @$_POST["nro_documento"];
    if (!$nro_documento) {
        $contenido["error"] = "Debe especificar el número de documento del cliente.";
    } else {
        $dbc = conectarBD();
        $consulta = "DELETE FROM cliente WHERE nro_documento = " . $_POST["nro_documento"] . ";";
        pg_prepare($dbc, "delete_query", "DELETE FROM cliente WHERE nro_documento = $1");
        $resultado = pg_execute($dbc, "delete_query", array($nro_documento));
        pg_close($dbc);
        if (!$resultado || pg_affected_rows($resultado) == 0) {
            $contenido["error"] = "No se ha encontrado un cliente con el número de documento indicado.";
        } else {
            $contenido["alerta"] = "Se ha eliminado correctamente al cliente especificado.";
            $log = guardarEnLog($consulta);
        }
    }

    index();
    Response::$view = "index";
}

?>
